package main.java.day05;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 * 要求用户输入若干员工信息，格式为：
 * name,age,gender,salary,hiredate;name,age,gender,salary,hiredate;....
 * 例如:
 * 张三,25,男,5000,2006-02-15;李四,26,女,6000,2007-12-24;...
 * 然后将每个员工信息解析成Emp对象。并存入到一个List集合中。
 * 并对集合排序，然后输出每个员工信息。
 * 
 * 再根据员工的入职时间排序，入职晚的在前，早的在后并
 * 输出每个员工的信息。
 * @author Xiloer
 *
 */
public class Test03 {
    public static void main(String[] args) throws ParseException {
        List<Emp>list=getEMP();
        Collections.sort(list);
        for (Emp e:list
             ) {
            System.out.println(e);
        }
        System.out.println("入职时间从早到晚排序");
        Comparator<Emp>com= new Comparator<Emp>() {

            @Override
            public int compare(Emp o1, Emp o2) {
            Long time=o1.getHiredate().getTime()-o2.getHiredate().getTime();
                return time>0?1:-1;
            }
        };
        Collections.sort(list,com);
        for (Emp e:list
             ) {
            System.out.println(e);
        }
    }

    public static List<Emp> getEMP() throws ParseException {
        new ArrayList<Emp>();
        System.out.println("请输入员工信息,格式为name,age,gender,salary,hiredate;");
        List<Emp>list=new ArrayList<Emp>();
        Scanner scanner= new Scanner(System.in);
        SimpleDateFormat simpleDateFormat= new SimpleDateFormat("yyyy-MM-dd");
        String input =scanner.nextLine();
        String[]arr1=input.split(";");
        for (String data:arr1
        ) {
            String[]empinfo=data.split(",");
            String name=empinfo[0];
            int age=Integer.parseInt(empinfo[1]);
            String gender=empinfo[2];
            int salary=Integer.parseInt(empinfo[3]);
            Date hiredate=simpleDateFormat.parse(empinfo[4]);
            Emp e=new Emp(name,age,gender,salary,hiredate);
            list.add(e);
        }return list;
    }

}
